#include "atoms.h"
#include <graphics.h>
#include <math.h>
 

Atom::Atom () {
  vx = 0;
  vy = 0;
}

void Atom::Draw () {
  fillellipse (x, y, 3, 3);
}

void Atom::Move () {
  x = x + vx * dt;
  y = y + vy * dt;
}


void Atom::Interaction (Atom* PAt) { 
  double F, r;
  Atom secatom;
  secatom = *PAt;
  
  r = sqrt ((x - secatom.x)*(x - secatom.x) + (y - secatom.y)*(y - secatom.y));
  
  F = 4*E*sigma*(-12*pow((sigma/r),13)+6*pow((sigma/r),7));
        
  vx = vx - F * (x - secatom.x) / r / mass * dt;
  vy = vy - F * (y - secatom.y) / r / mass * dt;
  secatom.vx = secatom.vx + F * (x - secatom.x) / r / mass * dt;
  secatom.vy = secatom.vy + F * (y - secatom.y) / r / mass * dt; 
  
  *PAt = secatom; 
}     

double Atom::GiveV () {
  return sqrt (vx * vx + vy * vy);      
}        
